#!/usr/bin/env python
import os
import re


def NewConfigDevice(TestDataFile):
    if not os.path.isfile(TestDataFile):
        print ("Not found the file: %s " % TestDataFile)
    else:
        TestDataFileFH=open(TestDataFile,"r")
        TestItemNum=0
        DigitalTestItemNum=""
        TestItemName=""
        FlagGoodDevice=False        
        while True:
            Line=TestDataFileFH.readline()
            if len(Line)==0:
                break
            if FlagGoodDevice:
                return TestItemNum,DigitalTestItemNum,TestItemName
                break
            
            if re.search("Device#: \d+$",Line,re.I) and not FlagGoodDevice:
                FlagDigitalTest=True
                TestItemNum=0
                DigitalTestItemNum=""
                TestItemName=""
                TempDigitalNum=0
                TempFuncNum=0
                while True:                    
                    Line=TestDataFileFH.readline()
                    if re.search("\s+\d+\s+\d+\s+(PASS|FAIL)\s+\w+\s+\w+\s+\d+",Line,re.I):
                        if not FlagDigitalTest:
                            DigitalTestItemNum=DigitalTestItemNum+"|"+str(TempFuncNum)
                        TempFuncNum=0
                        TestItemNum+=1
                        TempDigitalNum+=1
                        TempData=re.split("\s+",Line)
                        TestItemName=TestItemName+"|"+TempData[4]+"_"+TempData[5]
                        FlagDigitalTest=True
                    elif re.search("\s+\d+\s+\d+\s+(PASS|FAIL)\s+\w+\s+\w+$",Line,re.I):
                        if FlagDigitalTest:
                            DigitalTestItemNum=DigitalTestItemNum+"|"+str(TempDigitalNum)
                        TempDigitalNum=0
                        TempFuncNum+=1
                        TestItemNum+=1
                        TempData=re.split("\s+",Line)
                        TestItemName=TestItemName+"|"+TempData[4]+"_"+TempData[5]
                        FlagDigitalTest=False
                    elif re.search("\s+Site\s+Sort\s+Bin$",Line,re.I):
                        if TempDigitalNum:
                            DigitalTestItemNum=DigitalTestItemNum+"|"+str(TempDigitalNum)
                        elif TempFuncNum:
                            DigitalTestItemNum=DigitalTestItemNum+"|"+str(TempFuncNum)
                        Line=TestDataFileFH.readline()
                        Line=TestDataFileFH.readline()
                        TempData=re.split("\s+",Line)
                        if int(TempData[3])==1:
                            FlagGoodDevice=True
                        break    
if __name__=="__main__":
    TestItemNum,DigitalTestItemNum,TestItemName=NewConfigDevice(r"F:\DataProcess\NewTestData\HED0409_bv65\h666141\Data\1")
                            